---
title: 'Shopify (OAuth)'
sidebarTitle: 'Shopify (OAuth)'
description: 'Access the Shopify API in 2 minutes 💨'
---

import { StatusWidget } from "/snippets/api-down-watch/status-widget.jsx"

<StatusWidget service="shopify" />

<Tabs>
  <Tab title="🚀 Quickstart">
    <Steps>
      <Step title="Create an integration">
        In Nango ([free signup](https://app.nango.dev)), go to [Integrations](https://app.nango.dev/dev/integrations) -> _Configure New Integration_ -> _Shopify_.
      </Step>
      <Step title="Authorize Shopify">
        Go to [Connections](https://app.nango.dev/dev/connections) -> _Add Test Connection_ -> _Authorize_, then log in to Shopify. Later, you'll let your users do the same directly from your app.
      </Step>
      <Step title="Call the Shopify API">
        Let's make your first request to the Shopify API (fetch a list of customers). Replace the placeholders below with your [secret key](https://app.nango.dev/dev/environment-settings), [integration ID](https://app.nango.dev/dev/integrations), and [connection ID](https://app.nango.dev/dev/connections):
        <Tabs>
            <Tab title="cURL">

                ```bash
                curl "https://api.nango.dev/proxy/admin/api/2025-01/customers.json?limit=10" \
                  -H "Authorization: Bearer <NANGO-SECRET-KEY>" \
                  -H "Provider-Config-Key: <INTEGRATION-ID>" \
                  -H "Connection-Id: <CONNECTION-ID>"
                ```

            </Tab>

            <Tab title="Node">

            Install Nango's backend SDK with `npm i @nangohq/node`. Then run:

            ```typescript
            import { Nango } from '@nangohq/node';

            const nango = new Nango({ secretKey: '<NANGO-SECRET-KEY>' });

            const res = await nango.get({
                endpoint: '/admin/api/2025-01/customers.json',
                params: {
                  limit: 10
                },
                providerConfigKey: '<INTEGRATION-ID>',
                connectionId: '<CONNECTION-ID>'
            });

            console.log(JSON.stringify(res.data, null, 2));
            ```
            </Tab>

        </Tabs>

        Or fetch credentials dynamically via the [Node SDK](/reference/sdks/node#get-a-connection-with-credentials) or [API](/reference/api/connection/get).

      </Step>
    </Steps>

    ✅ You're connected! Check the [Logs](https://app.nango.dev/dev/logs) tab in Nango to inspect requests.

    <Tip>
    Next step: [Embed the auth flow](/getting-started/quickstart/embed-in-your-app) in your app to let your users connect their Shopify stores.
    </Tip>
  </Tab>
  <Tab title="🧑‍💻 OAuth app setup">
    <Steps>
      <Step title="Create a Shopify Partner account">
        If you don't already have one, go to [Shopify's Partner signup page](https://partners.shopify.com/signup/developer) and create a free account.
      </Step>
      <Step title="Create a new app in your Dev Dashboard">
        1. Navigate to the [Dev Dashboard](https://dev.shopify.com/dashboard/), then click **Create app** and provide a name for your app.
        2. Click **Create** to proceed.
      </Step>
      <Step title="Configure OAuth settings">
        You will be redirected to the **Versions** tab of your newly created app. 
        1. Click the **Select Scopes** button and select the scopes your integration requires from the list in the **Scopes** section.
        2. Under **Redirect URLs**, add the following URL: `https://api.nango.dev/oauth/callback`.
        3. Click the **Release** button at the bottom or top right.
        4. Fill out the form and click **Release** to publish this version.
        <Note>This version will automatically be marked as active. If you have multiple versions, ensure that it has the correct Redirect URL and scopes.</Note>
      </Step>
      <Step title="Obtain API credentials">
        1. Navigate to the created app's **Home** tab. Under **Distribution**, click **Select distribution method** and select **Public distribution**.
        2. Navigate to the created app's **Settings** tab.
        3. Copy the **Client ID** and **Secret** from the **Credentials** section. You'll need these credentials when configuring your integration in Nango.
      </Step>
      <Step title="Create a development store for testing (optional)">
        If you don't have a Shopify store already:
        1. From the same **Dev Dashboard**, click **Dev stores**, then click **Create dev store**.
        2. Fill out the **Create a dev store** form and click **Create store** to finish.
      </Step>
      <Step title="Next">
        Follow the [_Quickstart_](/getting-started/quickstart).
      </Step>
    </Steps>
  </Tab>
  <Tab title="🔗 Useful links">
    | Topic | Links |
    | - | - |
    | Authorization | [Guide to connect to Shopify using Connect UI](/integrations/all/shopify/connect) |
    | General | [Website](https://www.shopify.com/) |
    | | [Create a Partner account](https://partners.shopify.com/signup/developer) |
    | | [How to create a development store](https://help.shopify.com/en/partners/dashboard/development-stores) |
    | Developer | [API documentation](https://shopify.dev/docs/api/admin) |
    | | [Developer console](https://partners.shopify.com/) |
    | | [OAuth getting started guide](https://shopify.dev/docs/apps/build/authentication-authorization/access-tokens/authorization-code-grant) |
    | | [How to register an OAuth app](https://shopify.dev/docs/apps/build/authentication-authorization/client-secrets) |
    | | [List of OAuth scopes](https://shopify.dev/docs/api/usage/access-scopes) |
    | | [Details on rate limits](https://shopify.dev/docs/api/usage/rate-limits) |

    <Note>Contribute useful links by [editing this page](https://github.com/nangohq/nango/tree/master/docs/integrations/all/shopify.mdx)</Note>
  </Tab>
  <Tab title="🚨 API gotchas">
    - Shopify's API requires a shop-specific subdomain in the authorization URL.
    - Access tokens are shop-specific and cannot be used across different shops.
    - Some API endpoints have different rate limits than others. Check the [rate limits documentation](https://shopify.dev/docs/api/usage/rate-limits) for details.
    - You can skip adding scopes in Nango if you've already selected them when setting up your app in Shopify. 

    <Note>Contribute API gotchas by [editing this page](https://github.com/nangohq/nango/tree/master/docs/integrations/all/shopify.mdx)</Note>
  </Tab>
</Tabs>

<Info>
    Questions? Join us in the [Slack community](https://nango.dev/slack).
</Info>
